<?php
header("Pragma: public");
header("Expires: 0");
header("Accept-Ranges: bytes");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type:text/xml");
header('Content-Disposition: attachment; filename=xmltofis.xml');
header("Content-Transfer-Encoding: binary");

$xmlArray = array (
	'Root' => array(
		'AuthData' => array(
			'Login' =>'tkachenkopv@kursksmu.net',
			'Pass'=> 'OqZvVNZ'
		),
		'PackageData' => array(
/*				
			'CampaignInfo' => array( // информация о приемных кампаниях
				'Campaigns' => array(
					'Campaign'=> array(
						'UID' => '1', // идентификатор приемной компании в ИС ОУ 
						'Name' => 'Примемная компания 2013',
						'YearStart'	=> 2013, // начало приемной кампании
						'YearEnd'	=> 2013, // конец приемной кампании
						'EducationForms' => array(
							'EducationFormID' => array( // форма обучения  (форма обучения) fis_learnigforms
								'EducationformID1',
								'EducationformID2',
								'EducationformID3'
							) // EducationFormID
						), // EducationForms
						'StatusID' => '1', // статус приемной компании 1 - прием начался 2 - завершена
						'EducationLevels' => array( // уровни образования
							'EducationLevel' => array( 
								'Course' => 'Course', // курс видимо первый
								'EducationLevelID' => 'EducationLevelID' // уровень образования смотри справочник fis_edulevels
							)// EducationLevel
						), // EducationLevels
						'CampaignDates' => array(
							'CampaignDate' => array(
								'UID' => 'UID', // выяснить что это (идентификатор в ИС ОУ)
								'Course' => 'Course', // курс видимо первый
								'EducationLevelID' => 'EducationLevelID', // уровень образования смотри справочник fis_edulevels
								'EducationFormID' => 'EducationformID', // форма обучения  (форма обучения) fis_learnigforms
								'EducationSourceID' => 'EducationSourceID', // источник финансирования (тип обучения) fis_learningtypes
								'Stage' => 'Stage', // выяснить что это такое (!!! обязательно для бакалавров и специалистов)
								'DateStart' => 'DateStart', // дата начала приема
								'DateEnd' => 'DateEnd', // дата окончания приема
								'DateOrder' => 'DateOrder' // дата включения в приказ
							) // CampaignDate
						) // CampaignDates	
					) // Campaign
				) // Campaigns
			), // CampaignInfo
			'AdmissionInfo' => array( // сведения об объеме и структуре приема
				'AdmissionVolume' => array( // объем приема (контрольные цифры)
					'Item' => array(
						'UID' => 'UID', // идентифтикатор объема приема по направлению подготовки в ИС ОУ
						'CampaignUID' => 'CampaignUID', // идентификатор приемной кампании
						'EducationLevelID' => 'EducationLevelID', // уровень образования смотри справочник fis_edulevels
						'Course' => 'Course', // курс видимо первый
						'DirectionID' => 'DirectionID', // направление подготовки смотри справочник fis_professions
						'NumberBudgetO' => 'NumberBudgetO', // кол-во бюджетных мест очной формы
						'NumberBudgetOZ' => 'NumberBudgetOZ', // кол-во бюджетных мест очно-заочной формы
						'NumberBudgetZ' => 'NumberBudgetZ', // кол-во бюджетных мест заочной формы
						'NumberPaidO' => 'NumberPaidO', // кол-во внебюджетных мест очной формы
						'NumberPaidOZ' => 'NumberPaidOZ', // кол-во внебюджетных мест очно-заочной формы
						'NumberPaidZ' => 'NumberPaidZ', // кол-во внебюджетных мест заочной формы
						'NumberTargetO' => 'NumberTargetO', // кол-во целевых мест очной формы
						'NumberTargetOZ' => 'NumberTargetOZ', // кол-во целевых мест очно-заочной формы
						'NumberTargetZ' => 'NumberTargetZ', // кол-во целевых мест заочной формы
					) // 
				), // AdmissionVolume
				'CompetitiveGroups' => array( // конкурсные группы
					'CompetitiveGroup' => array( // конкусная группа
						'UID' => 'UID', // идентифтикатор в ИС ОУ
						'CampaignUID' => 'CampaignUID', // идентификатор приемной кампании
						'Course' => 'Course', // курс видимо первый
						'Name' => 'name', //  наименование конкурсной группы
						'Items' => array( //  перечень направлений подготовки смотри справочник fis_professions
							'CompetitiveGroupItem' => array(
								'UID' => 'UID', // идентификатор направления подготовки в ИС ОУ
								'EducationLevelID' => 'EducationLevelID', // уровень образования смотри справочник fis_edulevels
								'DirectionID' => 'DirectionID', // направление подготовки смотри справочник fis_professions
								'NumberBudgetO' => 'NumberBudgetO', // кол-во бюджетных мест очной формы
								'NumberBudgetOZ' => 'NumberBudgetOZ', // кол-во бюджетных мест очно-заочной формы
								'NumberBudgetZ' => 'NumberBudgetZ', // кол-во бюджетных мест заочной формы
								'NumberPaidO' => 'NumberPaidO', // кол-во внебюджетных мест очной формы
								'NumberPaidOZ' => 'NumberPaidOZ', // кол-во внебюджетных мест очно-заочной формы
								'NumberPaidZ' => 'NumberPaidZ', // кол-во внебюджетных мест заочной формы						
							)	// CompetitiveGroupItem					
						), // Items
						'TargetOrganizations' => array( // сведения о целевом наборе
							'TargetOrganization' => array( // сведения о целевом наборе от организации
								'UID' => 'UID', // идентификатор целевого набора организации В ИС ОУ (ID целевой организации)
								'TargetOrganizationName', // название целевой организации
								'Items' => array( // направления подготовки целевого приема
										'CompetitiveGroupTargetItem' => array( // места для целевого приема
												'UID' => 'UID', // идентификатор целевого приема В ИС ОУ ???
												'EducationLevelID' => 'EducationLevelID', // уровень образования смотри справочник fis_edulevels
												'NumberTargetO' => 'NumberTargetO', // кол-во целевых мест очной формы
												'NumberTargetOZ' => 'NumberTargetOZ', // кол-во целевых мест очно-заочной формы
												'NumberTargetZ' => 'NumberTargetZ', // кол-во целевых мест заочной формы
												'DirectionID' => 'DirectionID', // направление подготовки смотри справочник fis_professions																								
										) // CompetitiveGroupTargetItem
								) // Items
							) // TargetOrganization
						), // TargetOrganizations
						'CommonBenefit' => array( // сведения об общей льготе без вст. исп - олимпиада школьников
							'CommonBenefitItem' => array( // условия представления общей льготы без вст. исп - олимпиада школьников
								'UID' => 'UID', // идентификатор В ИС ОУ
								'OlympicDiplomTypes' => array( // типы дипломов
									'OlympicDiplomTypeId' => 'OlympicDiplomTypeId' // тип диплома смотри справочник fis_olympdiplomtypes
								), // OlympicDiplomTypes
								'BenefitKindId' => 'BenefitKindId', // вид льготы смотри справочник  fis_privileges
								'IsForAllOlympics' => 'IsForAllOlympics', // флаг действия льготы для всех олимпиад
								'Olympics' => array( // перечень олимпиад для которых действует льгота
									'OlympicID' => 'OlympicID' // ID олимпиады смотри справочник fis_olymps
								) // Olympics
							) // CommonBenefitItem
						), // CommonBenefit
						'EntranceTestItems' => array ( // вступительные испытания конкурсной группы
							'UID' => 'UID', // идентификатор В ИС ОУ
							'EntranceTestTypeId' => 'EntranceTestTypeId', // тип вступительного испытания смотри справочник fis_examtypes
							'Form' => 'Form', // форма вступительного испытания
							'MinScore' => 'MinScore', // минимальное количество баллов
							'EntranceTestSubject' => 'SubjectId', // ID предмета смотри справочник fis_subjects 
						//  EntranceTestBenefits - необязательный элемент - значит не посылаем	
						) // EntranceTestItems
					) // CompetitiveGroup
				) // CompetitiveGroups
			), // AdmissionInfo
*/			
/*
 *  по идее верхняя часть не обязательная так как Ярошенко должен все заполнить
 */				
			'Applications' => array( // заявления абиториентов
				'Application' => array( // заявление от абитуриента  (видимо в цикле генерировать такой массив ) перебирая всех абитуриентов которых нужно добавить в фис
					'UID' => 'UID', // идентификатор в ИС ОУ (ID абитуриента)
					'ApplicationNumber' => 'ApplicationNumber', // номер заявления в ОУ в нашем случае (ID абитуриента)
					'Entrant' => array( // абитуриент
						'UID' => 'UID', // в нашем случае (ID абитуриента)
						'FirstName' => 'FirstName', // в нашем случае (abiturients.firstname)
						'MiddleName' => 'MiddleName', // в нашем случае (abiturients.surname)
						'LastName' => 'LastName', // в нашем случае (abiturients.lastname)
						'GenderID' => 'GenderID', // пол смотри справочник fis_genders у нас наоборот значит if 1 then 2 or if 2 then 1
					//	'CustomInformation' => 'CustomInformation' доп информация представленная абитуриентом - необязательное
					//	'Snils' => 'Snils' // снилс в нашем случае  (abiturients.pension_certificate) - необязательное
					), // Entrant
					'RegistrationDate' => 'RegistrationDate', // дата регистрации заявления
				//	'LastDenyDate' - дата отзыва заявления - необязательное  значит не генерируем
					'NeedHostel' => 'NeedHostel', // признак необходимости общежития
				//  'StatusComment' - коментарий к статутсу	- необязательное  значит не генерируем
					'StatusID' => 'StatusID', // статус заявления смотри справочник fis_appstatuses
					'SelectedCompetitiveGroups' => array( // конкурсеые группы для заявления 
						'CompetitiveGroupID' => 'CompetitiveGroupID' // UID конкурсной группы
					), // SelectedCompetitiveGroups
					'CompetitiveGroupItems' => array( // элементы конкурсных групп для заявления
						'CompetitiveGroupItemID' => 'CompetitiveGroupItemID' // UID направления подготовки в конкурсной группе
					), // CompetitiveGroupItems
					'FinSourceAndEduForms' => array( // формы обучения и источники финансирования выбранные абитуриентом
						'FinSourceEduForm' => array( //пара форма обучения и источник финансирования
							'FinanceSourceID' => 'FinanceSourceID', // id источника финансирования в нашем случае fis_learningtypes
							'EducationFormID' => 'EducationFormID', // id формы обучения смотри fis_learnigforms
							// 'TargetOrganizationUID' => 'TargetOrganizationUID' // UID организации целевого приема (по ходу tgintakeorgs.id)
						) //FinSourceEduForm
					), // FinSourceAndEduForms
					// льгота если есть
					'ApplicationCommonBenefit' => array( // общая льгота предоставленная абитуриенту в нашем случае (abiturients.lastname)
						'UID' => 'UID', // идентификатор В ИС ОУ по ходу  privilegedocs.id или abiturients_privileges.id или abiturient_id#privilege_id
						'CompetitiveGroupID' => 'CompetitiveGroupID', // UID конкурсной группы 
						//'DocumentTypeID' => 'DocumentTypeID', // id документа основания не обязательное 
						//'DocumentReason' => array( // сведения о документе основании
							/**
							 *  будет один из элементов
							 *  OlympicDocument
							 *  OlympicTotalDocument
							 *  MedicalDocuments
							 *  CustomDocument
							 *  
							 */
						//), // DocumentReason
						'BenefitKindID' => 'BenefitKindID' // id вида льготы в нашем случае это fis_privileges
						// 
					), // ApplicationCommonBenefit
					// если есть
					'EntranceTestResults' => array( // результаты вступительных испытаний
						'EntrancetestResult' => array( // результат вступительного испытания
							'UID' => 'UID', // идентификатор в ИС ОУ в нашем случае results.id
							'ResultValue' => 'ResultValue', // балл
							'ResultSourceTypeID' => 'ResultSourceTypeID', // ID основания для оценки resulttypes.id
							'EntranceTypeTestTypeID' => 'EntranceTypeTestTypeID', // ID типа вступит испытания скорее всегда 1
							'EntarnceTestSubject' => array( // дисциплина вступительного испытания 
								'SubjectID' => 'SubjectID' // смотри fis_subjects синхронизировать с subjects results.subject_id
							), // EntarnceTestSubject
							'CompetitiveGroupID' => 'CompetitiveGroupID' // UID конкурсной группы (?!! id специальности)
							/*
							 * 'ResultDocument' => array(
							 * 	'OlympicDocument' => array(), // диплом победителя призера олимпиады
							 * 	'OlympicTotalDocument' => array(), // диплом победителя призера всероссийской олимпиады
							 * 	'InstitutionDocument' => array(), // испытание ОУ
							 * 	'EgeDocumentID' => 'EgeDocumentID' // UID св-ва ЕГЕ или справки ГИА
							 * )
							 */	
						) // EntrancetestResult
					), // EntranceTestResults
					'ApplicationDocuments' => array( // документы приложенные к заявлению
						// 'EgeDocuents' => array(), - не обязательное в ФИС все равно проверять будем
						'IdentityDocument' => array( // документ удостоверяющий личность
							'OriginalReceived' => 'OriginalReceived', // признак предоставления оригинала документов Всегда !!!
							'DocumentSeries' => 'DocumentSeries', // серия
							'DocumentNumber' => 'DocumentNumber', // номер
							'DocumentDate' => 'DocumentDate', // дата выдачи
							'IdentityDocumentTypeID' => 'IdentityDocumentTypeID', // Id типа док-та удостоверяющего личность смотри fis_identifydoctypes
							// но скорее всего только паспорт а это 1 или 3 - иностранный паспорт или 4 - св-во о рождении
							'NationalityTepeID' => 'NationalityTepeID', // id  национальности - страна смотри fis_countries
							'BirthDate' => 'BirthDate', // дата рождения
							// остальные поля необязательные (кем выдан место рождения код подразделения)
						), //IdentityDocument
						'EduDocuments' => array( // документы об образовании
							'EduDocument' => array( // документ об образовании
								// SchoolCertificateDocument		educationdoctypes.id=1 
								// HighEduDiplomaDocument			educationdoctypes.id=5 vs 6
								// MiddleEduDiplomaDocument			educationdoctypes.id=3 vs 4
								// BasicDiplomaDocument				educationdoctypes.id=2 
								// IncomplHighEduDiplomaDocument  	- не будет ?!! 
								// AcademicDiplomaDocument			- не будет ?!! 
								// SchoolCertificateBasicDocument	educationdoctypes.id=7
								// какой то из вышестоящих элементов все они имеют одинаковые атрибуты внутри
								'ZZZDocument' => array(
									'OriginalReceived' => 'OriginalReceived', // признак предоставления оригинала документов										
									'DocumentSeries' => 'DocumentSeries', // серия
									'DocumentNumber' => 'DocumentNumber', // номер									''
								),	
								// если не док-т не типичный то EduCustomDocument	
								'EduCustomDocument' => array( // иной док-т об образовании
									'DocumentDate' => 'DocumentDate', // дата выдачи
									'DocumentTypeNameText' => 'DocumentTypeNameText' // наименование док-та
								)
							) // EduDocument
						), //EduDocuments
 						// 'GiaDocuments' => array(), // справка  ГИА не обязательное в ФИС все равно проверять будем
						// 'CustomDocuments' => array() // иные документы
					) // ApplicationDocuments			
				) // Application
			) // Applications
		) // PackageData				
	) // Root
);
$resultxml = Xml::build($xmlArray, array('return' => 'simplexml'));

echo $resultxml->asXML();
?>

